home *** CD-ROM | disk | FTP | other *** search
- Path: bloom-beacon.mit.edu!hookup!swrinde!emory!news-feed-2.peachnet.edu!concert!bigblue.oit.unc.edu!sunSITE!mdw
- From: Paul Gortmaker <gpg109@rsphysse.anu.edu.au>
- Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers
- Subject: Linux Ethernet HOWTO (Part 1/2)
- Followup-To: poster
- Date: 16 Mar 1994 05:27:00 GMT
- Organization: The University of North Carolina at Chapel Hill
- Lines: 1175
- Approved: linux-announce@tc.cornell.edu (Matt Welsh)
- Message-ID: <2m65b4$e13@bigblue.oit.unc.edu>
- NNTP-Posting-Host: calzone.oit.unc.edu
- Keywords: Linux, Ethernet, TCP/IP, NET-2, network
- Originator: mdw@sunSITE
- Xref: bloom-beacon.mit.edu comp.os.linux.announce:1951 comp.os.linux.admin:5612 comp.answers:4181 news.answers:16450
-
- Archive-Name: linux/howto/ethernet/part1
- Last-Modified: 16 Mar 1994
-
- Linux Ethernet HOWTO v1.0 -- Last updated Mar 16, 1994
- =================================================================
-
- -- covers changes up to and including Linux kernel v1.0
-
- INDEX:
-
- 0 Introduction.
- 0.01 How do I use this Guide?
- 0.01 Disclaimer and Copyright
- 0.02 Questions already?
- 0.03 Related Documentation
- 0.04 New Versions of this Document
- 0.05 Feedback
-
- 1 What card should I buy for Linux?
- 1.01 Eight bit vs 16 bit
- 1.02 Low price Ethernet cards
- 1.03 Vendors and brands to avoid.
- 1.04 Type of cable that your card should support
-
- 2 Status of various Ethernet cards under Linux.
- 2.01 3Com
- 2.02 Western Digital / SMC
- 2.03 NExxxx
- 2.04 Hewlett Packard Cards
- 2.05 D-Link
- 2.06 Cabletron
- 2.07 Allied Telesis
- 2.08 Arcnet
- 2.09 Digital / DEC
- 2.10 Intel
- 2.11 PureData
- 2.12 Xircom
- 2.13 Zenith
- 2.14 Racal-Interlan
- 2.15 AMD LANCE (79C960)
- 2.16 AT-Lan-Tec / RealTek Pocket adaptor
- 2.17 Ansel
- 2.18 DFI
-
- 3 Clones of popular Ethernet cards.
- 3.01 WD80x3 Clones
- 3.02 NE2000 Clones
-
- 4 Cables, coax, twisted pairs etc.
- 4.01 Thin Ethernet (thinnet)
- 4.02 Twisted Pair
- 4.03 Thick Ethernet
-
- 5 Technical information.
- 5.01 Probed addresses
- 5.02 Skeleton / prototype driver
- 5.03 Driver interface to the kernel
- 5.04 Interrupts and linux
- 5.05 Programmed I/O vs. shared mem. vs slave/master DMA
- 5.06 Programming the Intel chips (i82586 and i82593)
- 5.07 Programming information from 3Com
- 5.08 Notes on AMD PCnet-ISA / LANCE Based cards (79C960)
- 5.09 Multicast and Promiscuous mode
- 5.10 The Berkeley Packet Filter (BPF)
- 5.11 Unresolved questions / concerns
-
- 6 Possible problems, questions and troubleshooting.
- 6.01 Problems with NE2000 (and clones)
- 6.02 Problems with WD80*3 cards
- 6.03 Problems with 3Com cards
-
- 7 Networking with a laptop computer.
- 7.01 Option 1 -- using SLIP
- 7.02 Option 2 -- Built in NE2000 compatible or PCMCIA Ethercard.
- 7.03 Option 3 -- ISA Ethercard in the docking station.
- 7.04 Option 4 -- Pocket / parallel port adaptors.
-
- 8 Frequently asked questions.
- 8.01 Just the FAQ's ma'am -- just the FAQ's.
-
- 9 Miscellaneous.
- 9.01 Bad Vendors
- 9.02 Closing
-
- ======================================================================
-
- 0. Introduction.
-
- This is the Ethernet-HOWTO, which is a compilation of information
- about which ethernet devices can be used for Linux, and how to
- set them up.
-
- This Ethernet-HOWTO is by:
- Donald J. Becker <becker@super.org>
- Paul Gortmaker <gpg109@rsphy1.anu.edu.au>
-
- It covers what cards you should and shouldn't buy; how to set
- them up, how to run more than one, and other common problems and
- questions. It does *not* cover the software end of things, as that
- is covered in the NET-2 HOWTO.
-
- Other people who have contributed (directly or indirectly) are,
- in alphabetical order:
-
- Peter Bauer <pbauer@rnivh.rni.sub.org>
- Ross Biro <bir7@leland.Stanford.EDU>
- Alan Cox <iiitac@pyr.swan.ac.uk>
- David C. Davies <davies@wanton.enet.dec.com>
- Bjorn Ekwall <bj0rn@blox.se>
- Charles Hedrick <hedrick@geneva.rutgers.edu>
- Mike Jagdis <jaggy@purplet.demon.co.uk>
- Duke Kamstra <kamstra@ccmail.west.smc.com>
- Russell Nelson <nelson@crynwr.com>
- Cameron Spitzer <camerons@NAD.3Com.com>
- Dave Roberts <david.roberts@amd.com>
- Glenn Talbott <gt@hprnd.rose.hp.com>
- Miquel van Smoorenburg <miquels@cistron.nl.mugnet.org>
-
- Many thanks to the above people, and all the other unmentioned
- testers out there.
-
- 0.01 How Do I Use This Guide?
-
- As this guide is getting bigger and bigger, you probably don't want
- to spend the rest of your afternoon reading the whole thing. And you
- don't *have* to read it all. If you haven't got an ethernet card, then
- you will want to start with section one to see what you should buy,
- and what you should avoid. If you have already got an ethernet card,
- but are not sure if you can use it with Linux, then you will want to
- read section two, which contains specific information on each
- manufacturer, and their cards. If you are having trouble with your
- card, then you will want to read the specific information about
- your card in section two and the troubleshooting information in
- section six. If you are interested in some of the technical aspects
- of the device drivers, then you can find that information in
- section 5.
-
- 0.01 Disclaimer and Copyright
-
- This document is *not* gospel. However, it is probably the most
- up to date info that you will be able to find. Nobody is responsible
- for what happens to your hardware but yourself. If your ethercard
- or any other hardware goes up in smoke (...nearly impossible!)
- we take no responsibility. ie. THE AUTHORS ARE NOT RESPONSIBLE
- FOR ANY DAMAGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE
- INFORMATION INCLUDED IN THIS DOCUMENT.
-
- This document is Copyright (c) 1994 by Donald Becker and
- Paul Gortmaker. Permission is granted to make and distribute
- verbatim copies of this manual provided the copyright notice
- and this permission notice are preserved on all copies.
-
- Permission is granted to copy and distribute modified versions
- of this document under the conditions for verbatim copying,
- provided that this copyright notice is included exactly as in
- the original, and that the entire resulting derived work is
- distributed under the terms of a permission notice identical
- to this one.
-
- Permission is granted to copy and distribute translations
- of this document into another language, under the above
- conditions for modified versions.
-
- 0.02 Questions already?
-
- If you have questions about your ethernet card, please READ this
- document first. You may also want to join the NET channel of the
- Linux-activists mailing list by sending mail to
- linux-activists-request@niksula.hut.fi
- with the line
- X-Mn-Admin: join NET
- at the top of the message body (not the subject). If you want to
- learn how to use the mailing channels, then send an empty message
- to the above address, and you will get an instruction manual sent
- back to you in a few hours. However, it is worth noting that the NET
- channel is primarily used for discussion of the networking code, and
- you may not see much discussion about a particular driver.
- Furthermore keep in mind that the NET channel is for development
- discussions only. General questions on how to configure your system
- should be directed to comp.os.linux.help unless you are actively
- involved in the development of part of the networking for Linux.
- We ask that you *please* respect this general guideline for content.
- You can safely bet that neither of the authors will respond to
- any plea for help that *should* be posted to c.o.l.help, but is
- inappropriately placed elsewhere.
-
- 0.03 Related Documentation
-
- Much of this info came from saved postings from the comp.os.linux
- groups, which shows that it is a valuable resource of information.
- Other useful information came from a bunch of small files by Donald
- himself. Some of these are found at /pub/linux/info on ftp.super.org
- [192.31.192.1] Of course, if you are setting up an Ethernet card,
- then you will want to read the NET-2 HOWTO so that you can actually
- do something with it. ftp.super.org is the home of most alpha drivers
- that are not presently in the kernel. And last but not least, the
- contributions from the individuals and companies listed above are
- greatly appreciated as well. Oh yeah, if you fancy yourself as
- a bit of a hacker, you can always scrounge some additional info
- from the driver source files as well. There is usually a paragraph
- in there describing any important points.
-
- 0.04 New versions of this document
-
- New versions of this document can be retrieved via anonymous
- FTP from sunsite.unc.edu:/pub/Linux/docs/HOWTO/* and various
- Linux ftp mirror sites. It will also be posted to the newsgroup
- comp.os.linux.announce at a regular interval. Updates will be made
- as new information / drivers becomes available. If this copy
- that you are reading is more than 2 months old, it is either out of
- date, or it means that I have been lazy and haven't updated it.
-
- 0.05 Feedback
-
- Any corrections can be sent to one of us (gpg109@rsphysse.anu.edu.au
- or becker@super.org) We will *attempt* to keep this up to date as
- more drivers become available, and as the networking code matures.
-
- 1 What card should I buy for Linux?
-
- For impatient users that just want a quick, cheap answer the
- summary is: get 16 bit thinnet 8013 cards. For more detail as
- to the who what where and why, read on.
-
- 1.01 Eight bit vs 16 bit
-
- Unless you are a light user, or are confined to using the smaller
- ISA slot, the use of the 8 bit cards like the wd8003 and the 3c503
- is really not worth the cost savings. Get the 8013 or the 3c503/16
- instead.
-
- 1.02 Low price Ethernet cards
-
- I keep track of the current low-price vendors, just because it's
- asked so often. Call AT-LAN-TEC at 301-948-7070. Ask for their
- technical support person, "Vincent Bono". As with all purchases,
- you should indicate you are buying this for a Linux system.
- The last I checked the price for 10 NE2000s was $480, or $48 ea.!
- NB: Their current NE2000 clone is a model that "traps" other
- drivers that probe into their address space. AT-LAN-TEC also carries
- a clone, non-EEPROM 8013 board for somewhat more, and a NE2100 clone.
- Either is a better choice if the very lowest price isn't essential.
- Also, SMC is offering an evaluation deal on their new Ultra cards,
- and the word is that you can get one for $50. You can ask them
- yourself by calling 1-800-SMC-4YOU in Canada and the USA.
-
- The Allied Telesis AT1500 is offered at a good price by many vendors.
- Even Inmac, known for their premium markup, has this card for under
- $100.
-
- 1.03 Vendors and Brands to Avoid
-
- These vendors have decided *not* to release programming information
- about their products, without signing a non-disclosure agreement.
- More information can be found in section two and 9.01. Hence it is
- strongly advised that you avoid buying products offered from
- these companies.
-
- (1) Cabletron
- (2) Xircom
-
- These particular cards should be avoided, as they are obsolete.
- The reasons as to why they have been classified as such can be
- found in section 2 of this document.
-
- (1) 3c501
- (2) Arcnet
-
- 1.04 Type of cable that your card should support
-
- Unless you have to conform to an existing network, you will want
- to use thinnet or thin ethernet cable. This is the style with the
- standard BNC connectors. See section 4 for other concerns with
- different types of ethernet cable.
-
- Most ethercards also come in a "Combo" version for only $10-$20 more.
- These have both twisted pair and thinnet transceiver built-in,
- allowing you to change your mind later.
-
- 2 Status of Various Ethernet Cards under Linux
-
- The only thing that one needs to use an ethernet card with Linux
- is the appropriate driver. For this, it is essential that the
- manufacturer will release the technical programming information to
- the general public without you (or anyone) having to sign your life
- away. A good guide for the likelihood of getting documentation
- (or, if you aren't writing code, the likelihood that someone
- else will write that driver you really, really need) is the
- availability of the Crynwr (nee Clarkson) packet driver. Russ
- Nelson (see the acknowledgements in the intro.) runs this
- operation, and has been very helpful in supporting the development
- of drivers for Linux.
-
- Given the documentation, you can write a driver for
- your card and use it for Linux, at least in theory. Keep in
- mind that some old hardware that was designed for XT type
- machines will not function very well in a multitasking
- environment such as Linux. Use of these will lead to major
- problems if your network sees a reasonable amount of traffic.
-
- Most cards come with drivers for MS-DOS interfaces such as
- NDIS and ODI, but these are useless for Linux. Many people
- have suggested directly linking them in or automatic
- translation, but this is nearly impossible. The MS-DOS
- drivers expect to be in 16 bit mode and hook into "software
- interrupts", both incompatible with the Linux kernel. This
- incompatibility is actually a feature, as some Linux drivers
- are considerably better than their MS-DOS counterparts. The
- "8390" series drivers, for instance, use ping-pong transmit
- buffers, which are only now being introduced in the MS-DOS world.
-
- Keep in mind that PC ethercards have the widest variety of
- interfaces (shared memory, programmed I/O, bus-master, or slave
- DMA) of any computer hardware for anything, and supporting a
- new ethercard sometimes requires re-thinking most of the lower-level
- networking code. (If you are interested in learning more about
- these different forms of interfaces, see section 5)
-
- Also, similar product numbers don't always indicate similar products.
- For instance, the 3c50* product line from 3Com varies wildly
- between different members.
-
- Enough talk. Let's get down to the information you want.
-
- 2.01 3Com
-
- Supported:
-
- 3c503, 3c503/16
- 3Com shared-memory ethercards. They also have a
- programmed I/O mode that doesn't use the 8390
- facilities (their engineers found too many bugs!)
- It should be about the same speed as the same bus
- width WD80x3, but I don't have a 16 bit version
- to benchmark. Unless you are a light user, spend
- the extra money and get the 16 bit model, as the
- price difference isn't significant. The 3c503 does not
- have "EEPROM setup", so the diagnostic/setup program
- isn't needed before running the card with Linux. The
- shared memory address of the 3c503 is set using jumpers
- that are shared with the boot PROM address. This is
- confusing to people familiar with other ISA cards,
- where you always leave the jumper set to "disable"
- unless you have a boot PROM.
-
- The Linux 3c503 driver can also work with the 3c503
- programmed-I/O mode, but this is slower and less
- reliable than shared memory mode. Also, programmed-I/O
- mode is not tested when updating the drivers, the
- deadman (deadcard?) check code may falsely timeout on
- some machines, and the probe for a 3c503 in
- programmed-I/O mode is turned off by default in some
- versions of the kernel. This was a panic reaction to
- the general device driver probe explosion; the 3c503
- shared memory probe is a safe read from memory, rather
- than an extensive scan through I/O space. As of pl13,
- the kernel has an I/O port registrar that makes I/O
- space probes safer, (see section 5.1 for more info.)
- and the programmed-I/O 3c503 probe has been re-enabled.
- You still shouldn't use the programmed-I/O mode though,
- unless you need it for MS-DOS compatibility.
-
- The 3c503's IRQ line is set in software, with no hints
- from an EEPROM. Unlike the MS-DOS drivers, the
- Linux driver has capability to autoIRQ: it uses the
- first available IRQ line in {5,2/9,3,4}, selected each
- time the card is 'ifconfig'ed. (Older driver versions
- selected the IRQ at boot time.) The ioctl() call
- in 'ifconfig' will return EAGAIN if no IRQ line is
- available at that time.
-
- 3c509
- A fairly new card from 3Com. It's inexpensive and has
- excellent performance for a non-bus-master design. The
- drawbacks are that it _requires_ very low interrupt
- latency, and it isn't rated for bus speeds greater than
- 8Mhz.
-
- A working 3c509 driver was first included as an
- alpha-test version in the 0.99pl13 kernel sources.
- It is now in the standard kernel.
-
- The 3c509 has a tiny Rx buffer, causing the driver to
- occasionally drop a packet if interrupts are masked for
- too long. To minimize this problem, the driver should
- be completely rewritten to use predictive interrupts.
- (Note: performance re-writes of working drivers are low
- priority unless there is some particular incentive or
- need.)
-
- There is also an alpha version of a Linux 3c509
- diagnostic and EEPROM setup program, but for now
- users that don't like the defaults should use the
- MS-DOS EEPROM setup program.
-
- 3c579
- The EISA version of the 509. The current EISA version
- uses the same 16 bit wide chip rather than a 32 bit
- interface, so the performance increase isn't stunning.
- The EISA probe code was added to 3c509.c for pl14.
- We would be interested in hearing progress reports
- from any 3c579 users. (Read the above 3c509
- section for info on the driver.)
-
- Cameron Spitzer writes:
- "The 3C579 (Etherlink III EISA) should be configured
- as an EISA card. The IO Base Address (window 0
- register 6 bits 4:0) should be 1f, which selects EISA
- addressing mode. Logic outside the ASIC decodes the
- IO address s000, where s is the slot number. I don't
- think it was documented real well. Except for its IO
- Base Address, the '579 should behave EXACTLY like the
- '509 (EL3 ISA), and if it doesn't, I want to hear
- about it (at my work address).
-
- I will leave it to the Real Programmers to suggest
- the right hack to /usr/src/linux/net/inet/3c509.c to
- take care of the EISA case.
-
- (Note that the drivers now reside in ./drivers/net/
- and *not* ./inet/net/ --- pg.)
-
- Beware that if you put a '509 in EISA addressing mode
- by mistake and save that in the EEPROM, you'll have
- to use an EISA machine or the infamous Test Via to
- get it back to normal, and it will conflict at IO
- location 0 which may hang your ISA machine. It's not
- my job to say whether this is a bug or feature, but I
- have heard loud and clear that customers don't like
- it and I don't think we'll do it that way again."
-
- Unsupported:
-
- 3c501
- Too brain-damaged to use. Available surplus from many
- places. Avoid it like the plague. Again, do not
- purchase this card, even as a joke. It's performance
- is horrible, and it breaks in many ways.
-
- (I have a standing offer: I'll pay $2 for each 3c501
- shipped to me postpaid, but only if you include the
- BNC 'T' connector and the jumpers. $2.50 if you just
- send the 'T', jumpers, and address PROM and promise to
- destroy the board. -djb)
-
- Cameron L. Spitzer of 3Com said:
- "I'm speaking only for myself here, of course, but I
- believe 3Com advises against installing a 3C501 in a
- new system, mostly for the same reasons Donald has
- discussed. You probably won't be happy with the
- 3C501 in your Linux box. The data sheet is marked
- "(obsolete)" on 3Com's Developers' Order Form, and
- the board is not part of 3Com's program for sending
- free Technical Reference Manuals to people who need
- them. The decade-old things are nearly
- indestructible, but that's about all they've got
- going for them any more."
-
- For those not yet convinced, the 3c501 can only do one
- thing at a time -- while you are removing one packet
- from the single-packet buffer it cannot receive
- another packet, nor can it receive a packet while are
- loading a transmit packet. This was fine for a
- network between two 8088-based computers where
- processing each packet and replying took 10's of
- msecs, but modern networks send back-to-back
- packets for almost every transaction.
-
- Having read this far, you must be persistent, so you
- get let in on a secret. As of pl13, some more of
- the hardware problems were "compensated for".
-
- Ie. in a fit of madness I wasted a whole day updating
- my 3c501 driver and then trying to track down a few
- more of the 3c501 glitches. It now works well enough
- to NFS mount filesystems, but the receiver still
- occasionally hangs. I'm mostly certain that this is
- a hardware bug. When it hangs, the next set of
- outgoing packets will reset the board, but that's
- only useful if you have something occasionally
- generating outgoing packets.
-
- The driver is now in the std. kernel, but under the
- following conditions: This is unsupported code. I
- know my usual copyright says all the code is
- unsupported, but this is _really_ unsupported. I
- DON'T want to see bug reports, and I'll accept bug
- fixes only if I'm in a good mood that day.
-
- I don't want to see a fest of "Linux ethercards for
- sale" postings. A bunch of people have bought dozens
- of "dumpster special" 3c501s, and they hope to sell
- them at rip-off prices. A 3c501 is barely worth the
- shipping cost, and if I see people trying to sell
- them here by claiming "supported by Linux" I _will_
- flame them. They are _not_ supported by Linux.
-
- I don't want to be flamed later for putting out bad
- software. I don't know all all of the 3c501 bugs,
- and I know this driver only handles a few that I've
- been able to figure out. It has taken a long
- intense effort just to get the driver working this
- well.
-
- That said, you will find it included in "config.in"
- No special mods are needed to use it with pl15
- or greater kernels. Jumper your card to 0x280.
-
- AutoIRQ works, DMA isn't used, the autoprobe only
- looks at 0x280, the debug level is set with the third
- boot-time argument. You'll probably want to change
- the default EL_DEBUG to '2'.
-
- Once again, THE USE OF A 3c501 IS STRONGLY DISCOURAGED
- and it is NOT SUPPORTED BY LINUX.
-
-
- 3c505
- An Intel-based ethercard with no driver available
- at present. (Not a very common card.)
-
- 3c507
- This card uses one of the Intel chips, and the
- development of the driver is closely related to
- the development of the Intel Ether Express driver.
- The driver has been included in the standard
- release of pl15. You will have to un-comment
- the 3c507 line in "config.in" -- in case you
- didn't figure it out already, it is commented
- out because it is still being tested.
-
- Technical information is available in section 5.06,
- and if you have experience in writing drivers, see
- section 5.07 as well.
-
- 2.02 Western Digital / SMC
-
- The ethernet part of Western Digital has been bought by SMC. The
- SMC Elite and SMC Elite Plus are the same as late-model WD8003
- and WD8013 cards. Note that the SMC Elite Ultra is *not* the
- same as the plain SMC Elite / WD8013 card. (see below)
-
- Supported:
-
- WD8003, WD8013, SMC Elite, SMC Elite Plus
- A shared memory design by Western Digital. The
- 8 bit 8003 is slightly less expensive, but only
- worth the savings for light use. Over the
- years the design has added more registers and an
- EEPROM. Clones usually go by the '8013' name, and
- usually use a non-EEPROM (jumpered) design. This part
- of WD has been sold to SMC, so you'll usually see
- something like SMC/WD8013 or SMC Elite Plus (WD8013).
- The shared memory makes the cards 10-20% faster,
- especially with larger packets. More importantly
- (to me at least) it avoids a few bugs in the
- programmed-I/O mode of the 8390, allows safe
- multi-threaded access to the packet buffer, and
- doesn't have a programmed-I/O data register that
- hangs your machine during warm-boot probes.
-
- SMC Elite 16 ULTRA
- This ethercard is based on a new chip from SMC, with
- a few new features. While it has a mode that is
- similar to the older SMC ethercards, it's not
- compatible with the old WD80*3 drivers. However, in
- this mode it shares most of its code with the other
- 8390 drivers, while operating somewhat faster than a
- WD8013 clone.
-
- Some of the device probe checks in pl14 were too
- too strict, causing some cards to not be detected
- every time. This was fixed for pl14a, and hence is
- fine for pl15. Since part of the Ultra "looks" like
- an 8013, the Ultra probe is supposed to find an
- Ultra before the wd8013 probe has a chance to
- mistakenly identify it.
-
- Std. as of pl14, and made possible by documentation
- and ethercard loan from kamstra@ccmail.west.smc.com,
- Duke Kamstra. If you plan on using an Ultra with Linux
- send him a note of thanks to let him know that there
- are Linux users out there!
-
- I'm considering writing a separate driver for the
- Ultra's "Altego" mode which allows chaining transmits
- at the cost of inefficient use of receive buffers,
- but that will probably not happen right away.
- Performance re-writes of working drivers are low
- priority unless there is some particular incentive
- or need.
-
- 2.03 NExxxx
-
- The prefix "NE" came from Novell Ethernet. Novell followed the
- cheapest NatSemi databook design and sold the manufacturing rights
- (spun off?) Eagle, just to get reasonably-priced ethercards into
- the market.
-
- Supported:
-
- NE1000, NE2000
- The now-generic name for a bare-bones design around
- the NatSemi 8390. They use programmed I/O rather than
- shared memory, leading to easier installation but
- slightly lower performance and a few problems. Again,
- the savings of using an 8 bit NE1000 over the NE2000
- are only warranted if you expect light use. Some
- recently introduced NE2000 clones use the National
- Semiconductor "AT/LANTic" 83905 chip, which offers
- a shared memory mode similar to the 8013 and EEPROM
- or software configuration. Some problems can arise
- with poor clones. See the question and answer section
- later in this document, and the section on clones.
- I have written a NE2000 diagnostic program, but it
- is still presently in alpha test. (ne2k)
-
- NE1500, NE2100
- The AT1500 driver, recently added to the list of
- supported cards, also supports the NE1500, NE2100 and
- clones. The driver shipped with pl12 kernel doesn't
- detect non-AT1500 cards with autoprobe, but will work
- fine if you specify the base address explicitly and
- jumper for DMA channel 5. Read the Allied Telesis
- section for more information on LANCE based cards.
-
- 2.04 Hewlett Packard
-
- The 272** cards use programmed I/O, similar to the NE*000 boards,
- but the data transfer port can be "turned off" when you aren't
- accessing it, avoiding problems with autoprobing drivers.
-
- Thanks to Glenn Talbott for cleaning up the confusion in this
- section regarding the version numbers of the HP hardware, and
- adding lots of new info.
-
- Supported:
-
- 27245A
- 8 Bit 8390 based 10BaseT, not recommended for all the
- 8 bit reasons. It was re-designed a couple years
- ago to be highly integrated which caused some
- changes in initialization timing which only
- affected testing programs, not LAN drivers. (The
- new card is not 'ready' as soon after switching
- into and out of loopback mode.)
-
- 27247B, 27252A
- The 47B is a 16 Bit 8390 based 10BaseT w/AUI, and
- the 52A is a 16 Bit 8390 based ThinLAN w/AUI.
- These cards are high performers (3c509 speed) without
- the interrupt latency problems (32K onboard RAM for TX
- or RX packet buffering). They both offer LAN
- connector autosense, data I/O in I/O space (simpler) or
- memory mapped (faster), and soft configuration. 27247B
- was rated Best for ISA Servers by PC Mag this year.
-
- 27247A
- This is the older model that existed before the "B".
- Two versions 27247-60001 or 27247-60002 have part
- numbers marked on the card. Functionally the same to
- the LAN driver, except bits in ROM to identify
- boards differ. -60002 has a jumper to allow
- operation in non-standard ISA busses (chipsets
- that expect IOCHRDY early.)
-
- HP J2405A
- These are lower priced, and slightly faster than the
- 27247B/27252A, but are missing some features, such
- as AUI, ThinLAN connectivity, and boot PROM socket.
- This is a fairly generic LANCE design, but a minor
- design decision makes it incompatible with a generic
- "NE2100" driver. Special support for it (including
- reading the DMA channel from the board) is in pl14
- and up, thanks to information provided by HP's Glenn
- Talbott, gt@hprnd.rose.hp.com. Note that the pre pl14
- driver should not be used with this card.
-
- More information on LANCE based cards can be found in
- section 5.08.
-
- 2.05 D-Link
-
- Supported:
-
- DE-600
- Laptop users and other folk who might want a quick
- way to put their computer onto the ethernet may want
- to use this. The driver was included with the default
- kernel source tree as of pl12 and possibly earlier.
- Bjorn Ekwall <bj0rn@blox.se> wrote the original.
- Expect about 80kb/s transfer speed from this via the
- parallel port. You should read the README.DLINK
- file in the kernel source tree. The latest release
- of this driver is v0.32, and it is included in the
- standard kernel of pl15
-
- DE-650
- Some people have been using this PCMCIA card for
- some time now with their notebooks. Note however,
- that using a PCMCIA card with Linux is not trivial.
- See the section on networking with a notebook for
- more information on PCMCIA cards. This driver is
- *not* part of the standard kernel.
-
- DE-100, DE-200, DE-220-T
- The manual says that it is 100% compatible with the
- NE2000. This is not true. You should call them and
- tell them you are using their card with Linux, and they
- should correct their documentation. Some pre-0.99pl12
- driver versions may have trouble recognizing the DE2**
- series as 16 bit cards, and these cards are the most
- widely reported as having the spurious transfer address
- mismatch errors. Note that there are cards from
- Digital (DEC) that are also named DE100 and DE200,
- but the similarity stops there.
-
- Unsupported:
-
- DE-620
- Same as the DE-600, only with two output formats.
- (BNC and RJ-45, I would assume... ????)
- Bjorn writes: "I have still no information on the
- DE-620 that I can include in this release. (Maybe
- someone well connected to D-Link sees this,
- hint, hint, hint...)
-
- 2.06 Cabletron
-
- Yes, another one of these companies that won't release its
- programming information. They waited for months before actually
- confirming that all their information was proprietary, deliberately
- wasting my time. Avoid their cards like the plague if you can.
- Also note that some people have phoned Cabletron, and have been
- told things like "a dbecker@super.org is working on a driver
- for linux" -- making it sound like I work for them. This is
- NOT the case. Anyway, if I were working for them, or even if
- I had signed a ND agreement, I wouldn't be able to tell
- everyone what a sleazy design the E2100 is. (See below.)
-
- If you feel like asking them why they don't want to release their
- info so that people can use their cards, write to support@ctron.com
- Tell them that you are using Linux, and are disappointed that they
- don't support open systems. (See section 9.01)
-
- Supported: (...well, not *really* supported)
-
- E10**, E10**-x, E20**, E20**-x
- These are NEx000 almost-clones that are reported to
- work with the standard NEx000 drivers, thanks to a
- ctron-specific check during the probe. If there are
- any problems, they are unlikely to be fixed, as the
- programming information is unavailable.
-
-
- E21**
- Again, there is not much one can do when the
- programming information is proprietary.
- The E2100 is a poor design. Whenever it maps its
- shared memory in during a packet transfer, it
- maps it into the *whole 128K region*! That means you
- *can't* safely use another interrupt-driven shared
- memory device in that region, including another E2100.
- It will work _most_ of the time, but every once in
- a while it will bite you. (Yes, this problem can
- be avoided by turning off interrupts while
- transferring packets, but that will almost certainly
- lose clock ticks.
-
- Also, don't confuse the E2100 for a NE2100 clone.
- The E2100 is a shared memory NatSemi DP8390 design,
- roughly similar to a brain-damaged WD8013, whereas
- the NE2100 (and NE1500) use a bus-mastering AMD
- LANCE design.
-
- There is an alpha test driver available (even though
- I shouldn't have bothered) in the normal place
- (see the FAQ section) -- e2100.c -- let me know if
- you use it, and how it works. Don't forget to
- un-comment the line in config.in.
-
- 2.07 Allied Telesis
-
- Allied Telesis is the worlds largest maker of separate
- transceivers thanks to their low prices, and they now have a
- series of low-cost ethercards using the 79C960 version of the AMD
- LANCE. These are bus-master cards, and thus probably the fastest
- ISA bus ethercards available (although the 3c509 has lower latency
- thanks to predictive interrupts).
-
- Supported:
-
- AT1500
- The driver for the AT1500 series is new in the
- 0.99pl12 kernel, but it won't work "out-of-the-box"
- with >16M machines. (NB This isn't a fundamental
- limitation, so stop pointing and laughing at the ISA
- bus. The driver just needs a hook to allocate
- low-memory buffers for the bus-master DMA, and should
- be just as fast on >16M systems. It can be easily
- fixed by initializing the LANCE driver with the
- character devices, but this fix depends on the
- resolution of the networking code uncertainty.)
-
- For the ISA bus master mode all structures used
- directly by the LANCE, the initialization block,
- Rx and Tx rings, and data buffers, must be accessible
- from the ISA bus, i.e. in the lower 16M of real memory.
- This is a problem for current Linux kernels on >16M
- machines. The network devices are initialized after
- memory initialization, and the kernel doles out memory
- from the top of memory downward. The current solution
- is to have a special network initialization routine
- that's called before memory initialization; this will
- eventually be generalized for all network devices.
- Low-memory "bounce-buffers" are used when needed.
-
- This driver should also work with NE1500 and NE2100
- clones.
-
- Future driver versions may figure out a way to
- autoDMA. Although there is no autoDMA (until I verify
- that autoDMA is safe and reliable), some versions
- (pl13) allow passing the DMA channel at boot-time via
- LILO. (Boot-time parameters can be made permanent in
- LILO v13+, read the docs.) The DMA channel otherwise
- defaults to DMA5.
-
- In pl14, there was a buglet that would hang some
- machines with AT1500 like cards. Either get pl15
- or newer, or go into ./init/main.c and move the
- sti(); and claibrate_delay(); (near line 366) in
- *front of* the #ifdef CONFIG_INET, instead of
- after it.
-
- Please report the exact chip used by your ethercard,
- and any success or failure you have. This driver is
- still young, and I've gotten few reports.
-
- More information on AMD LANCE based Ethernet cards
- can be found in section 5.08.
-
- AT1700
- The Allied Telesis AT1700 series ethercards are based
- on the Fujitsu MB86965. This chip uses a programmed
- I/O interface, and a pair of fixed-size transmit
- buffers. This allows small groups of packets to sent
- be sent back-to-back, with a short pause while
- switching buffers.
-
- A unique feature is the ability to drive 150ohm STP
- (Shielded Twisted Pair) cable commonly installed for
- Token Ring, in addition to 10baseT 100ohm UTP
- (unshielded twisted pair).
-
- A mis-feature to watch out for is that the current
- production version silently wires to DMA channel 5,
- rendering it useless. No device driver will be
- written using DMA if installing a second card into
- the machine breaks both, and the only way to disable
- the DMA is with a knife.
-
- The at1700 driver is included in the standard pl15
- kernel source tree.
-
- 2.08 Arcnet
-
- There is no Arcnet driver for Linux. Feel free to write a driver. With
- the very low cost and better performance of ethernet, I expect that
- most places will be giving away their Arcnet hardware for free,
- resulting in a lot of home systems with Arcnet.
-
- An advantage of Arcnet is that all of the cards have identical
- interfaces, so once a driver is available it will work for everyone.
-
- 2.09 Digital / DEC
-
- Supported: DE200, DE210, DE202, DE100, DEPCA rev E
-
- As of linux v1.0, there is a driver included as standard
- for these cards. It was written by David C. Davies.
- There is documentation included in the source file
- "depca.c", which includes info on how to use more than
- one of these cards in a machine.
-
- If you have / want to use the pl15 kernel or older,
- then you will have to use Peter Bauer's driver.
- It can be found as a separate patch called depca-0.8.tar.gz.
- You will have to un-comment the DEPCA line in "config.in"
- after installing the patch. You can find the patch on
- ftp.funet.fi, /pub/OS/Linux/BETA/depca/depca-0.8.tar.gz
- This version resets the card upon close so that you can
- use it with broken DOS drivers after a warm boot.
-
-
- Unsupported: Digital Etherlink III
-
- Peter Bauer said that "the new etherlink III seems to
- be a break: No official docu from DEC as far as today,
- other (incompatible??) hardware used, and (no joke) (at least
- for the first delivered cards) also a sharp knife necessary
- to get the card working (needs cut of some irq lines ...)
- As far as I know, lots of DEC Employees use Linux (at least
- for hobby purposes) and the depca-driver, because its a
- de-facto standard in DEC, so I encourage any DEC-employee
- reading this to check wether my writing is true, and to
- support sources of information about the etherworks-III."
-
- 2.10 Intel Ethernet Cards
-
- Supported: Ether Express
-
- This card uses the intel i82586. (Surprise, huh?)
- The driver is in the standard release of pl15.
- However, you will have to uncomment the line in
- "config.in" to use it. -- yes, this line is
- commented out for a reason. The driver is still
- in the testing phases, as of v1.0 as well.
-
- There is some technical information available on
- the i82586 in section 5.06, and also in the
- source code for the driver "eexpress.c". Don't
- be afraid to read it. ;-)
-
- The rason is that the driver works well with slow machines,
- but the i82586 occasionally hangs from the packet buffer
- contention that a fast machine can cause. I'll have
- to find a work-around before releasing the driver.
- One reported hack fix is to change all of the outw()
- calls to outw_p().
-
-
- If you do try the driver please post or send a report.
- Include the kind of machine you are trying it with,
- and how heavily loaded your network is.
-
-
- 2.11 PureData
-
- Supported: PDUC8028, PDI8023
-
- The PureData PDUC8028 and PDI8023 series of cards are reported
- to work, thanks to special probe code contributed by Mike
- Jagdis <jaggy@purplet.demon.co.uk>. The support is integrated
- with the WD driver.
-
- 2.12 Xircom
-
- Another group that won't release documentation. No cards
- supported. Don't look for any support in the future unless
- they release their programming information. And this is
- highly unlikely, as they *forbid* you from even reverse-
- engineering their drivers. If you are already stuck with one,
- see if you can trade it off on some DOS (l)user. Read section
- 9.01 if you are bored.
-
- And if you just want to verify that this is the case, you can
- reach Xircom at 1-800-874-7875 or +1-818-878-7600.
-
- 2.13 Zenith
-
- The built-in Z-Note network adaptor is based on the Intel
- i82593 using two DMA channels. There might be a driver for it
- in mid 1994. See section 5.06 for more information.
- Also note that the Z-Note is compatible with the IBM ThinkPad 300.
-
- 2.14 Racal-Interlan
-
- Note: I have been told that the following two drivers are
- for patchlevel 11, and hence are a bit dated. The original
- author is Michael Hipp, and can be reached at the following addr:
- zxmhp01@student.uni-tuebingen.de
-
- NI52**
-
- There is an alpha driver for the NI5210 floating about.
- (last seen on tsx-11.mit.edu /pub/linux/ALPHA/ni/ni52.tar.gz)
- This card also uses one of the Intel chips. See section
- 5.06 for more information.
-
- NI65**
-
- There is also a driver for the LANCE based NI6510, and it
- can be found in the same place as the NI5210 driver above.
- I am not sure how much work it would be to hack the current
- LANCE driver in the kernel to support this card. If anyone
- has done so, let me know.
-
- 2.15 AMD LANCE (79C960)
-
- There really is no AMD ethernet card. You are probably reading this
- because the only markings you could find on your card said AMD
- and the above number. The above number refers to a chip from AMD
- that is the heart of many ethernet cards. See the section on the
- Allied Telesis AT1500, the NE1500/2100 and the information in
- section 5.08. Chances are that the existing LANCE driver will work
- with all AMD LANCE based cards. (...except perhaps the above
- mentioned NI6510 ???)
-
- 2.16 AT-Lan-Tec / RealTek Pocket adaptor
-
- This is a generic, low-cost OEM pocket adaptor being sold by
- AT-Lan-Tec, and (likely) a number of other suppliers. A
- driver for it is included in the standard pl15 kernel.
- Note that there is substantial information contained in the
- driver source file "atp.c" which presently lives in ./drivers/net/
- BTW, the adaptor (AEP-100L) has both 10baseT and BNC connections!
- You can reach AT-Lan-Tec at 1-301-948-7070. Ask for the model
- that works with Linux, or ask for "Vincent Bono" in tech support.
- In the Netherlands a compatible adaptor is sold under the name SHI-TEC
- PE-NET/CT, and sells for about $125. The vendor was Megasellers.
- They state that they do not sell to private persons, but I just
- gave them the name of my home institute. No questions asked.
- They are: Megasellers, Vianen, The Netherlands. They always
- advertise in Dutch computer magazines. In Germany, a similar
- adaptor comes as a no-brand-name product. Prolan 890b, no
- brand on the casing, only a roman II. Resellers can get a price
- of about $130, including a small wall transformer for the power.
-
- Physical Description
-
- The adaptor is "normal size" for the product class, about 57mm wide,
- 22mm high tapering to 15mm high at the DB25 connector, and 105mm long
- (120mm including the BNC socket). It's switchable between the RJ45
- and BNC jacks with a small slide switch positioned between the two:
- a very intuitive design.
-
- It's powered by a lightweight 5V "wall brick" adaptor that terminates
- in a standard 5.0mm power connector. I measured an unconnected
- quiescent power draw of 102ma for BNC and 84ma for 10baseT. I hooked
- the pocket adaptor up to my home thinnet and started FTPing a large
- file. The power measurements were:
-
- idle, connected 99ma @ 5.1V
- active, connected 107ma @ 5.1V
-
- This was measured using a Fluke 8026B true-RMS multimeter, so I'm
- pretty confident the numbers are good. This power draw is low enough
- that you could buy or build a cable to take the 5V directly from the
- keyboard/mouse port available on many laptops. (Bonus points here
- for using a standardized power connector instead of proprietary one.)
-
- 2.17 Ansel
-
- Supported: AC3200 EISA
-
- This driver is not included in the pl15 kernel. To
- *alpha* test it, get the files ac3200.[c,h] from
- where you usually get alpha drivers (see the FAQ in
- this document if you dont know) and uncomment the
- line in config.in for the ac3200. If you use it,
- please let me know how things work out.
-
- 2.18 DFI
-
- Supported: DFINET-300 (NE1000) and DFINET-400 (NE2000)
-
- These cards are now detected (as of pl15) thanks to
- Eberhard Moenkeberg <emoenke@gwdg.de> who noted that
- they use "DFI" in the first 3 bytes of the prom, instead
- of using 0x57 in bytes 14 and 15, which is what all the
- NE1000 and NE2000 cards use.
-
- 3. Clones of popular Ethernet cards.
-
- Due to the popular design of some cards, different companies will
- make "clones" or replicas of the original card. However, one must
- be careful, as some of these clones are not 100% compatible, and
- can be troublesome. Some common problems with "not-quite-clones"
- are noted in the question and answer section of this document.
-
- Also note that if your card isn't mentioned here, that really
- means nothing. Chances are that even if it is only a half decent
- clone of the original, then it will still work.
-
- 3.1 WD80x3 clones
-
- The following clones are reported to work with the standard
- WD80x3 driver:
-
- AT-LAN-TEC 8013
- PureData (not a 8013 clone, but the 8013 driver has special code)
- LANNET LEC-45
- PE-8013 (WD-8013 Compatible)
-
- 3.2 NE2000 clones
-
- The following clones are reported to work with the standard
- NE2000 driver:
-
- Accton NE2000 (might not get detected at boot, see section 6)
- Alta Combo NE2000 clone
- Aritsoft LANtastic AE-2 (OK, but has flawed error-reporting registers)
- Asante Etherpak 2001/2003
- AT-LAN-TEC NE2000 clone (uses Winbond chip that traps SCSI drivers)
- Cabletron products: E10**, E10**-x, E20**, E20**-x
- Cnet UTP 10baseT (NE 2000 emulation)
- D-Link Ethernet II (bad clones, but the driver checks for them)
- 4-Dimension FD0490 EtherBoard16
- LTC E-NET/16 P/N: 8300-200-002 (lipka@lip.hanse.de)
- Network Solutions HE-203
- SIIG Inc E-Lan/200 (NE 2000 comp.)
- SVEC 4 Dimension Ethernet
-
- 4. Cables, coax, twisted pairs etc.
-
- If you are starting a network from scratch, it's considerably less
- expensive to use thin ethernet, RG58 co-ax cable with BNC connectors,
- than old-fashioned thick ethernet, RG-5 cable with N connectors, or
- 10baseT, twisted pair telco-style cables with RJ-45 eight wire "phone"
- connectors.
-
- 4.01 Thin Ethernet (thinnet)
-
- Thin ethernet is the "ether of choice". The cable is inexpensive. If
- you are making your own cables solid-core RG58A is $0.09/ft. and
- stranded RG58AU is $0.15/ft. Twist-on BNC connectors are < $2 ea.,
- and other misc. pieces are similarly inexpensive. It is essential
- that you properly terminate each end of the cable with 50 ohm
- terminators, so budget $2 ea. for a pair. It's also vital that
- your cable have no "stubs" -- the 'T' connectors must be attached
- directly to the ethercards. The only drawback is that if you have
- a big loop of machines connected together, and some bonehead breaks
- the loop by taking one cable off the side of his tee, the whole
- network goes down because it sees an infinite impedance (open
- circuit) instead of the required 50 ohm termination. Note that
- you can remove the tee piece from the card itself without killing
- the whole subnet, as long as you don't remove the cables from the
- tee itself. Of course this will disturb the machine that you
- pull the actual tee off of. 8-) And if you are doing a small
- network of two machines, you *still* need the tees and the 50 ohm
- terminators -- you *can't* just cable them together!
-
-
- 4.02 Twisted pair
-
- Twisted pair networks require active hubs, which start around $200,
- and the raw cable cost can actually be higher than thinnet. They are
- usually sold using the claim that you can use your existing telephone
- wiring, but it's a rare installation where that turns out to be the
- case. The claim that you can upgrade to higher speeds is also
- suspect, as most proposed schemes use higher-grade (read $$) cable and
- more sophisticated termination ($$$) than you would likely install on
- speculation. New gizmos are floating around which allow you to
- daisy-chain machines together, and the like. For example,
- Falleron sells EtherWave adaptors and transceivers. This device
- allows multiple 10baseT devices to be daisy-chained. They also
- sell a 3c509 clone that includes the EtherWave transceiver.
- The drawback is that it's more expensive and less reliable than a
- cheap ($100-$150) mini-hub and another ethercard. IMO, you should
- either go for the hub approach or switch over to 10base2 thinnet.
-
- On the other hand, hubs are rapidly dropping in price, all 100Mb/sec
- ethernet proposals use twisted pair, and most new business
- installations use twisted pair. (This is probably to avoid the
- problem with idiots messing with the BNC's as described above.)
-
- If you are only connecting two machines, it is possible to avoid
- using a hub, by swapping the Rx and Tx pairs (1-2 and 3-6).
-
- Also, Russ Nelson adds that "New installations should use Category 5
- wiring. Anything else is a waste of your installer's time, as
- 100Base-whatever is going to require Cat 5."
-
- 4.03 Thick Ethernet
-
- Thick ethernet is mostly obsolete, and is usually used only to remain
- compatible with an existing implementation. You can stretch the rules
- and connect short spans of thick and thin ethernet together with a
- passive $3 N-to-BNC connector, and that's often the best solution to
- expanding an existing thicknet. A correct (but expensive) solution is
- to use a repeater in this case.
-
-
- -- end of part 1 of 2 --
-